# 作用： 项目的配置文件
import logging

import redis


class Config(object):
    """工程配置信息"""

    # session的语法糖
    SECRET_KEY = "a1cjZZUABEUSwrGZL3rqSvBeAyT1WBxdD3UFVLKmAW6IXZW14IcaP8DX4cDwnDl7"

    # 数据库的配置信息
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:python@localhost:3306/information'
    # 关闭追踪数据库的修改
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    # redis配置
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379

    # flask_session的配置信息
    SESSION_TYPE = "redis"  # 指定 session保存到redis中
    # 让cookie中的session_id被加密签名处理
    SESSION_USE_SIGNER = True
    # 给session配置redis的操作对象
    SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT)
    # 设置session可以过期
    SESSION_PERMANENT = False
    PERMANENT_SESSION_LIFETIME = 86400 * 2  # session 的有效期，单位是秒
    LOG_LEVEL = logging.DEBUG


class DevelopementConfig(Config):
    """开发模式下的配置"""
    DEBUG = True
    LOG_LEVEL = logging.DEBUG


class ProductionConfig(Config):
    """生产模式下的配置"""
    DEBUG = True
    LOG_LEVEL = logging.WARNING


# 定义配置字典
config = {
    "development": DevelopementConfig,
    "production": ProductionConfig
}
